JavaScript syntax
part 40/43 Β· 161.3 KB total
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Exception handling
JavaScript includes a try ... catch ... finally exception handling
statement to handle run-time errors.
The try ... catch ... finally statement catches exceptions resulting
from an error or a throw statement. Its syntax is as follows:
try {
// Statements in which exceptions might be thrown
} catch(errorValue) {
// Statements that execute in the event of an exception
} finally {
// Statements that execute afterward either way
}
Initially, the statements within the try block execute. If an exception
is thrown, the script's control flow immediately transfers to the
statements in the catch block, with the exception available as the error
argument. Otherwise the catch block is skipped. The catch block can
throw(errorValue), if it does not want to handle a specific error.
In any case the statements in the finally block are always executed.
This can be used to free resources, although memory is automatically
garbage collected.
Either the catch or the finally clause may be omitted. The catch
argument is required.
The Mozilla implementation allows for multiple catch statements, as an
extension to the ECMAScript standard. They follow a syntax similar to
that used in Java:
try { statement; }
catch (e if e == "InvalidNameException") { statement; }
catch (e if e == "InvalidIdException") { statement; }
catch (e if e == "InvalidEmailException") { statement; }
catch (e) { statement; }
In a browser, the onerror event is more commonly used to trap
exceptions.
onerror = function (errorValue, url, lineNr) {...; return true;};
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ